Skip to content

[Testing] Refactoring Feature Matrix UITest Cases for Shapes Control#34637

Open
HarishKumarSF4517 wants to merge 5 commits intodotnet:mainfrom
HarishKumarSF4517:refactoring-shapes-feature
Open

[Testing] Refactoring Feature Matrix UITest Cases for Shapes Control#34637
HarishKumarSF4517 wants to merge 5 commits intodotnet:mainfrom
HarishKumarSF4517:refactoring-shapes-feature

Conversation

@HarishKumarSF4517
Copy link
Copy Markdown
Contributor

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

This pull request significantly enhances the shapes feature matrix in the test host app by adding support for new shape properties, introducing the RoundRectangle shape, and improving the testability and flexibility of shape options. Key changes include new bindings for advanced shape properties, an updated view model with a reset-to-defaults method, and UI/UX improvements for shape selection and property editing.

Shape property and binding enhancements:

  • Added support for StrokeLineCap, StrokeLineJoin, FillRule, Aspect, and CornerRadius properties in the ShapesViewModel and bound these to the corresponding shape controls in ShapesControlPage.xaml, allowing for more comprehensive shape customization and testing. [1] [2] [3] [4] [5] [6] [7]

  • Updated the view model to provide sensible default values for all shape properties and added a ResetToDefaults method, ensuring each test starts from a known state. The navigation logic was updated to call this reset before opening the options page. [1] [2] [3] [4] [5]

New shape and UI improvements:

  • Introduced support for the RoundRectangle shape, including view model support, XAML bindings, and property section visibility logic in the options page. [1] [2] [3]

  • Refactored the shape options page to simplify and generalize property section visibility, and added event handlers for new property radio button groups (aspect, line cap, line join, fill rule). [1] [2]

Code and test cleanup:

  • Removed the unused ShapeConverters.cs file, as the shape property bindings and conversions are now handled directly in the view model and XAML.

  • Minor improvements and bug fixes, such as using the correct color namespace and ensuring fill color is properly unset. [1] [2] [3]

These changes make the shapes feature matrix more robust, extensible, and easier to test for advanced shape scenarios.

Existing Issue Identified:

  1. System.Runtime.InteropServices.COMException thrown when setting Image.Aspect = AspectFill via data binding on Windows #29812

HarishKumarSF4517 and others added 4 commits March 25, 2026 10:55
Snapshots:
- Delete wrong-named Line_FillColorWithStrokeColor_Shadow.png and
  PolyLine_FillColorWithStrokeColor_Shadow.png (tests are named
  Line_StrokeColor_Shadow / Polyline_StrokeColor_Shadow)
- Rename PolyLine_* → Polyline_* on all platforms to match test method
  names (Android, iOS, ios-26, Mac, Windows)

ShapesViewModel:
- Extract duplicate point-parsing into ParsePointCollection() helper
- Use CultureInfo.InvariantCulture in double.TryParse to avoid
  locale-dependent parsing of coordinate strings
- Replace bare catch with catch (Exception ex) and log via Debug.WriteLine
- Add System.Globalization using directive

ShapesOptionsPage:
- Remove redundant FillColor = null in OnFillColorChanged; HasFillColor
  setter already clears FillColor when set to false
- Make GetColorByName static; use fully-qualified Microsoft.Maui.Graphics.Colors
  consistently for all color cases (was using bare Colors.Red for 'red')

ShapesControlPage:
- Add comment explaining why ResetToDefaults() is called before navigation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 25, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34637

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 34637"

@HarishKumarSF4517 HarishKumarSF4517 changed the title Refactoring shapes feature [Testing] Refactoring Feature Matrix UITest Cases for Shapes Control Mar 25, 2026
@dotnet-policy-service dotnet-policy-service bot added the community ✨ Community Contribution label Mar 25, 2026
@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Hey there @@HarishKumarSF4517! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@dotnet-policy-service dotnet-policy-service bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Mar 25, 2026
@sheiksyedm
Copy link
Copy Markdown
Contributor

/azp run maui-pr-uitests

@sheiksyedm sheiksyedm marked this pull request as ready for review March 26, 2026 10:54
Copilot AI review requested due to automatic review settings March 26, 2026 10:54
@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the Shapes Feature Matrix host UI + UITests to support additional shape properties and a new RoundRectangle shape, updating screenshot-based baselines accordingly.

Changes:

  • Extended the Shapes host page/options UI and ShapesViewModel to support new properties (e.g., StrokeLineCap, StrokeLineJoin, FillRule, Aspect, CornerRadius) and introduced RoundRectangle.
  • Refactored options UI to reset state via ResetToDefaults() for more deterministic screenshot tests.
  • Expanded/renamed screenshot UITest cases and updated snapshot baselines across platforms.

Reviewed changes

Copilot reviewed 7 out of 191 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs Refactors and expands screenshot-based tests; renames tests and adds many new cases including RoundRectangle and new property scenarios.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesViewModel.cs Adds new bindable properties and a ResetToDefaults() method; refactors point parsing and improves PathGeometry parse failure logging.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml Updates shape rendering bindings and adds the RoundRectangle shape with new property bindings.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml.cs Changes Options navigation to reset the existing view model instead of recreating it.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml Refactors the options UI layout, adds new property controls (Aspect/LineCap/LineJoin/FillRule), and introduces RoundRectangle options.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml.cs Adds handlers for new property radio groups and refactors property-section visibility logic.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapeConverters.cs Removed unused converters (logic moved into the view model/bindings).
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/EnumToBoolConverter.cs Minor formatting-only change.
src/Controls/tests/TestCases.*.Tests/snapshots/** Updates/adds screenshot baselines for the refactored shapes tests.

@MauiBot
Copy link
Copy Markdown
Collaborator

MauiBot commented Mar 27, 2026

🤖 AI Summary

📊 Expand Full Reviewcd7b449 · Removed unnecessary snapshots
🔍 Pre-Flight — Context & Validation

Issue: #29812 - System.Runtime.InteropServices.COMException when setting Image.Aspect via data binding on Windows (linked as "Existing Issue Identified" — not the primary subject of this PR)
PR: #34637 - [Testing] Refactoring Feature Matrix UITest Cases for Shapes Control
Author: HarishKumarSF4517 (partner/syncfusion, community)
Platforms Affected: Android, iOS, Windows, macCatalyst (snapshot-based UI tests)
Files Changed: 8 code/test files, ~183 snapshot PNGs

Key Findings

  • This is a test-only PR — no functional/framework code changes; refactors the Shapes feature matrix test infrastructure in TestCases.HostApp and TestCases.Shared.Tests
  • Category moved to class level: [Category(UITestCategories.Shape)] on class instead of per-method — correct per guidelines
  • Test ordering added: [Test, Order(N)] on all methods — introduces ordering dependency
  • Test renames: Line_FillColorWithStrokeColor_ShadowLine_StrokeColor_Shadow, PolyLine_*Polyline_* (case change on 'l'), Path_Points_ThicknessPath_PathData_Thickness
  • New shape: RoundRectangle added to feature matrix with full test scenarios
  • New properties tested: StrokeLineCap, StrokeLineJoin, FillRule, Aspect, CornerRadius
  • ResetToDefaults() added to ShapesViewModel — replaces new ShapesViewModel() in navigation click handler
  • ShapeConverters.cs removed — converters moved into ViewModel/XAML
  • Root Cause of Gate Failure (Android): Two Android snapshot files were modified but NOT renamed:
    • PolyLine_DashArray_DashOffset_Thickness.png → needs rename to Polyline_DashArray_DashOffset_Thickness.png
    • PolyLine_Points_Thickness.png → needs rename to Polyline_Points_Thickness.png
    • Same issue exists in iOS snapshots directory
  • WinUI missing baselines: New RoundRectangle_* tests and Path_PathData_Thickness rename have no WinUI snapshot baselines
  • Prior agent review: Found (Gate ❌ FAILED, Try-Fix ⚠️ BLOCKED for all 4 models due to test-only PR)

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #34637 Refactor shapes tests + ResetToDefaults + snapshot updates ❌ FAILED (Gate) 8 code, ~183 PNG Android + iOS PolyLine→Polyline snapshots not renamed

🔧 Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix (claude-opus-4.6) Add optional name param to VerifyShapeScreenshot(), pass old PolyLine_* snapshot names at call sites ✅ PASS ShapesFeatureTests.cs Works but creates method/snapshot naming inconsistency
2 try-fix (claude-sonnet-4.6) git mv rename 4 PNG files: PolyLine_DashArray_DashOffset_Thickness.pngPolyline_* and PolyLine_Points_Thickness.pngPolyline_* in Android + iOS ✅ PASS 4 PNG files Cleanest: fixes root cause, no code change, no orphan files
3 try-fix (gpt-5.3-codex) Copy existing PNGs to new names (both PolyLine_* and Polyline_* coexist) ✅ PASS 4 new PNG files Works but leaves 4 orphan PolyLine_* files
4 try-fix (gpt-5.4, gemini unavailable) UITest.cs fallback: look up legacy name when new name not found + skip WinUI RoundRectangle_* tests ✅ PASS UITest.cs, ShapesFeatureTests.cs Complex infra change; touches shared test infra; addresses WinUI gap too
PR PR #34637 Refactor shapes tests + ResetToDefaults + snapshot updates ❌ FAILED (Gate) 8 code, ~183 PNG Missing 4 snapshot renames in Android+iOS; WinUI baselines missing for RoundRectangle_*

Cross-Pollination

Model Round New Ideas? Details
claude-opus-4.6 2 No Confirmed git mv is correct; no new ideas
claude-sonnet-4.6 2 No Confirmed git mv; noted WinUI baselines require Windows capture
gpt-5.3-codex 2 Yes Add missing WinUI baselines for RoundRectangle_* + Path_PathData_Thicknessenvironment-blocked (requires Windows)
gpt-5.4 2 Yes Same WinUI baselines idea — environment-blocked (requires Windows)
gpt-5.3-codex 3 Yes Attribute-based baseline alias mechanism [ScreenshotBaselineAlias] — overly complex for test-only PR
gpt-5.4 3 Yes WinUI-skip via existing skip pattern — same concept as Attempt 4
gpt-5.3-codex 4 (final) Yes Duplicate baseline images (same content, both names) — same as Attempt 3
gpt-5.4 4 (final) Yes Generate WinUI baselines from local Windows run — environment-blocked (same idea)

Exhausted: Yes — 3 rounds completed; all remaining ideas are either environment-blocked (Windows required), already covered by Attempts 1-4, or too complex for a test-only PR.

Selected Fix: Attempt 2git mv rename 4 snapshot files

Reason: Attempt 2 is the minimal, correct fix that addresses the root cause directly. It renames only the 4 misnamed PNG files to align with the test method names (PolyLine_*Polyline_*), with no code changes, no orphan files, and no infrastructure modifications. This is what the PR author should have done with git mv instead of git add new + git rm old (which left the old files in place as modified, not renamed).

Remaining issue (not fixed by any single attempt): The PR is also missing WinUI baseline snapshots for:

  • All RoundRectangle_* tests (6 new test methods)
  • Path_PathData_Thickness (renamed from Path_Points_Thickness)

These require running on Windows to capture. Until those baselines are added, WinUI tests for these scenarios will fail. The PR author needs to run the WinUI tests locally, capture the snapshots, and commit them.


📋 Report — Final Recommendation

⚠️ Final Recommendation: REQUEST CHANGES

Phase Status

Phase Status Notes
Pre-Flight ✅ COMPLETE Test-only PR; gate identified 2 misnamed Android + 2 iOS snapshots as root cause
Gate ❌ FAILED Android — 2 snapshot name mismatches (PolyLine_* vs Polyline_*)
Try-Fix ✅ COMPLETE 4 attempts, all ✅ PASS; 3 rounds cross-pollination; best fix = Attempt 2
Report ✅ COMPLETE

Summary

PR #34637 refactors the Shapes Feature Matrix UITests with new shape properties, a new RoundRectangle shape, test renames, and ~183 updated snapshots. The code quality and approach are good, but the PR has snapshot file naming inconsistencies that caused the gate to fail on Android, and missing WinUI baselines that will cause Windows CI failures.

Root Cause

The gate failed on Android because two snapshot files were modified but not renamed when their corresponding test methods were renamed from PolyLine_*Polyline_* (case change on 'l'). On case-sensitive Linux filesystems, Polyline_DashArray_DashOffset_Thickness.pngPolyLine_DashArray_DashOffset_Thickness.png:

  1. TestCases.Android.Tests/snapshots/android/PolyLine_DashArray_DashOffset_Thickness.png → must be renamed to Polyline_DashArray_DashOffset_Thickness.png
  2. TestCases.Android.Tests/snapshots/android/PolyLine_Points_Thickness.png → must be renamed to Polyline_Points_Thickness.png
  3. TestCases.iOS.Tests/snapshots/ios/PolyLine_DashArray_DashOffset_Thickness.png → same rename needed
  4. TestCases.iOS.Tests/snapshots/ios/PolyLine_Points_Thickness.png → same rename needed

Mac and WinUI snapshot directories correctly performed the rename (R100 in git). Android and iOS only modified (M) content without renaming.

Additional issue: WinUI is missing baseline snapshots for:

  • All 6 new RoundRectangle_* test methods (no *.png added to TestCases.WinUI.Tests/snapshots/windows/)
  • Path_PathData_Thickness (renamed from Path_Points_Thickness — WinUI has old name, not new)

Fix Quality

Best fix: Attempt 2 — Use git mv to rename the 4 misnamed snapshot files. This is the cleanest, minimal fix: no code changes, no orphan files, aligns snapshot filenames with test method names.

# Android
git mv src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_DashArray_DashOffset_Thickness.png \
       src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_DashArray_DashOffset_Thickness.png
git mv src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_Points_Thickness.png \
       src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_Points_Thickness.png
# iOS
git mv src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_DashArray_DashOffset_Thickness.png \
       src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_DashArray_DashOffset_Thickness.png
git mv src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_Points_Thickness.png \
       src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_Points_Thickness.png

Non-snapshot code changes are well-done:

  • [Category] moved to class level — correct per guidelines
  • ResetToDefaults() is a clean improvement over new ShapesViewModel()
  • ✅ New RoundRectangle shape + new property bindings are well-structured
  • EnumToBoolConverter.cs refactoring is correct
  • ⚠️ [Test, Order(N)] ordering on all methods introduces test ordering dependency — tests should ideally be independent; however this is an existing pattern in the feature matrix tests

Required action from PR author:

  1. Rename the 4 snapshot files with git mv (see commands above)
  2. Run WinUI tests locally and commit the missing baseline snapshots for RoundRectangle_* (6 tests) and Path_PathData_Thickness
  3. Verify there are no remaining PolyLine_FillColorWithStrokeColor_Shadow references in any snapshot directory that need cleanup

@MauiBot MauiBot added s/agent-review-incomplete AI agent could not complete all phases (blocker, timeout, error) s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) s/agent-changes-requested AI agent recommends changes - found a better alternative or issues s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates and removed s/agent-review-incomplete AI agent could not complete all phases (blocker, timeout, error) labels Mar 27, 2026
@dotnet dotnet deleted a comment from MauiBot Mar 28, 2026
@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Mar 28, 2026

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@MauiBot
Copy link
Copy Markdown
Collaborator

MauiBot commented Mar 29, 2026

🚦 Gate — Test Verification

📊 Expand Full Gatecd7b449 · Removed unnecessary snapshots

Gate Result: ❌ FAILED

Platform: ANDROID · Base: main · Merge base: 720a9d4a

Test Without Fix (expect FAIL) With Fix (expect PASS)
🖥️ ShapesFeatureTests ShapesFeatureTests ✅ FAIL — 2592s ❌ FAIL — 1459s
🔴 Without fix — 🖥️ ShapesFeatureTests: FAIL ✅ · 2592s

(truncated to last 15,000 chars)

pdatebuildnumber]10.0.60-ci+azdo.13681890
  Controls.Core -> /home/vsts/work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
  UITest.Core -> /home/vsts/work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
  UITest.Appium -> /home/vsts/work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
  UITest.NUnit -> /home/vsts/work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
  VisualTestUtils -> /home/vsts/work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
  VisualTestUtils.MagickNet -> /home/vsts/work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
  UITest.Analyzers -> /home/vsts/work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
  Controls.TestCases.Android.Tests -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
Test run for /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
/home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.12]   Discovering: Controls.TestCases.Android.Tests
[xUnit.net 00:00:00.42]   Discovered:  Controls.TestCases.Android.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
   NUnit3TestExecutor discovered 55 of 55 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 03/29/2026 00:47:51 FixtureSetup for ShapesFeatureTests(Android)
>>>>> 03/29/2026 00:48:03 Rectangle_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 00:48:14 Rectangle_FillColorWithStrokeColor_Shadow Stop
  Passed Rectangle_FillColorWithStrokeColor_Shadow [11 s]
>>>>> 03/29/2026 00:48:15 Ellipse_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 00:48:22 Ellipse_FillColorWithStrokeColor_Shadow Stop
  Passed Ellipse_FillColorWithStrokeColor_Shadow [8 s]
>>>>> 03/29/2026 00:48:23 Line_StrokeColor_Shadow Start
>>>>> 03/29/2026 00:48:54 Line_StrokeColor_Shadow Stop
  Passed Line_StrokeColor_Shadow [31 s]
>>>>> 03/29/2026 00:48:54 Polygon_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 00:49:02 Polygon_FillColorWithStrokeColor_Shadow Stop
  Passed Polygon_FillColorWithStrokeColor_Shadow [8 s]
>>>>> 03/29/2026 00:49:02 Polyline_StrokeColor_Shadow Start
>>>>> 03/29/2026 00:49:10 Polyline_StrokeColor_Shadow Stop
  Passed Polyline_StrokeColor_Shadow [7 s]
>>>>> 03/29/2026 00:49:10 Path_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 00:49:18 Path_FillColorWithStrokeColor_Shadow Stop
  Passed Path_FillColorWithStrokeColor_Shadow [8 s]
>>>>> 03/29/2026 00:49:18 Rectangle_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:49:38 Rectangle_DashArray_DashOffset_Thickness Stop
  Passed Rectangle_DashArray_DashOffset_Thickness [19 s]
>>>>> 03/29/2026 00:49:38 Ellipse_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:49:59 Ellipse_DashArray_DashOffset_Thickness Stop
  Passed Ellipse_DashArray_DashOffset_Thickness [21 s]
>>>>> 03/29/2026 00:49:59 Polyline_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:50:22 Polyline_DashArray_DashOffset_Thickness Stop
>>>>> 03/29/2026 00:50:23 Log types: logcat, bugreport, server
  Failed Polyline_DashArray_DashOffset_Thickness [23 s]
  Error Message:
   VisualTestUtils.VisualTestFailedException : 
Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Polyline_DashArray_DashOffset_Thickness.png
Ensure new snapshot is correct:    /home/vsts/work/1/a/Controls.TestCases.Shared.Tests/snapshots-diff/android/Polyline_DashArray_DashOffset_Thickness.png
  and if it is, push a change to add it to the 'snapshots' directory.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow

  Stack Trace:
     at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.VerifyShapeScreenshot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 23
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.Polyline_DashArray_DashOffset_Thickness() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 291
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

>>>>> 03/29/2026 00:50:23 Polygon_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:50:43 Polygon_DashArray_DashOffset_Thickness Stop
  Passed Polygon_DashArray_DashOffset_Thickness [20 s]
>>>>> 03/29/2026 00:50:43 Path_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:51:04 Path_DashArray_DashOffset_Thickness Stop
  Passed Path_DashArray_DashOffset_Thickness [20 s]
>>>>> 03/29/2026 00:51:04 Line_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:51:47 Line_DashArray_DashOffset_Thickness Stop
  Passed Line_DashArray_DashOffset_Thickness [43 s]
>>>>> 03/29/2026 00:51:47 Path_PathData_Thickness Start
>>>>> 03/29/2026 00:52:03 Path_PathData_Thickness Stop
  Passed Path_PathData_Thickness [15 s]
>>>>> 03/29/2026 00:52:03 Polyline_Points_Thickness Start
>>>>> 03/29/2026 00:52:20 Polyline_Points_Thickness Stop
>>>>> 03/29/2026 00:52:20 Log types: logcat, bugreport, server
  Failed Polyline_Points_Thickness [17 s]
  Error Message:
   VisualTestUtils.VisualTestFailedException : 
Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Polyline_Points_Thickness.png
Ensure new snapshot is correct:    /home/vsts/work/1/a/Controls.TestCases.Shared.Tests/snapshots-diff/android/Polyline_Points_Thickness.png
  and if it is, push a change to add it to the 'snapshots' directory.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow

  Stack Trace:
     at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.VerifyShapeScreenshot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 23
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.Polyline_Points_Thickness() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 451
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

>>>>> 03/29/2026 00:52:21 Polygon_Pentagon Start
>>>>> 03/29/2026 00:52:32 Polygon_Pentagon Stop
  Passed Polygon_Pentagon [10 s]
>>>>> 03/29/2026 00:52:32 Rectangle_XAndYRadius Start
>>>>> 03/29/2026 00:52:52 Rectangle_XAndYRadius Stop
  Passed Rectangle_XAndYRadius [20 s]
>>>>> 03/29/2026 00:52:52 Rectangle_HeightAndWidth Start
>>>>> 03/29/2026 00:53:08 Rectangle_HeightAndWidth Stop
  Passed Rectangle_HeightAndWidth [16 s]
>>>>> 03/29/2026 00:53:08 Rectangle_StrokeColor_Thickness Start
>>>>> 03/29/2026 00:53:18 Rectangle_StrokeColor_Thickness Stop
  Passed Rectangle_StrokeColor_Thickness [10 s]
>>>>> 03/29/2026 00:53:19 Ellipse_StrokeColor_Thickness Start
>>>>> 03/29/2026 00:53:30 Ellipse_StrokeColor_Thickness Stop
  Passed Ellipse_StrokeColor_Thickness [11 s]
>>>>> 03/29/2026 00:53:30 Line_StrokeColor_Thickness Start
>>>>> 03/29/2026 00:54:00 Line_StrokeColor_Thickness Stop
  Passed Line_StrokeColor_Thickness [30 s]
>>>>> 03/29/2026 00:54:00 Polygon_StrokeColor_Thickness Start
>>>>> 03/29/2026 00:54:12 Polygon_StrokeColor_Thickness Stop
  Passed Polygon_StrokeColor_Thickness [11 s]
>>>>> 03/29/2026 00:54:12 Polyline_StrokeColor_Thickness Start
>>>>> 03/29/2026 00:54:22 Polyline_StrokeColor_Thickness Stop
  Passed Polyline_StrokeColor_Thickness [10 s]
>>>>> 03/29/2026 00:54:22 Path_StrokeColor_Thickness Start
>>>>> 03/29/2026 00:54:32 Path_StrokeColor_Thickness Stop
  Passed Path_StrokeColor_Thickness [10 s]
>>>>> 03/29/2026 00:54:33 Rectangle_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 00:54:48 Rectangle_StrokeColor_DashArray_Thickness Stop
  Passed Rectangle_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 00:54:48 Ellipse_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 00:55:03 Ellipse_StrokeColor_DashArray_Thickness Stop
  Passed Ellipse_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 00:55:03 Line_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 00:55:40 Line_StrokeColor_DashArray_Thickness Stop
  Passed Line_StrokeColor_DashArray_Thickness [37 s]
>>>>> 03/29/2026 00:55:41 Polygon_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 00:55:55 Polygon_StrokeColor_DashArray_Thickness Stop
  Passed Polygon_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 00:55:56 Polyline_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 00:56:11 Polyline_StrokeColor_DashArray_Thickness Stop
  Passed Polyline_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 00:56:11 Path_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 00:56:28 Path_StrokeColor_DashArray_Thickness Stop
  Passed Path_StrokeColor_DashArray_Thickness [16 s]
>>>>> 03/29/2026 00:56:28 RoundRectangle_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 00:56:36 RoundRectangle_FillColorWithStrokeColor_Shadow Stop
  Passed RoundRectangle_FillColorWithStrokeColor_Shadow [8 s]
>>>>> 03/29/2026 00:56:36 RoundRectangle_CornerRadius Start
>>>>> 03/29/2026 00:56:53 RoundRectangle_CornerRadius Stop
  Passed RoundRectangle_CornerRadius [16 s]
>>>>> 03/29/2026 00:56:53 RoundRectangle_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 00:57:18 RoundRectangle_DashArray_DashOffset_Thickness Stop
  Passed RoundRectangle_DashArray_DashOffset_Thickness [25 s]
>>>>> 03/29/2026 00:57:18 Line_StrokeLineCap_Round Start
>>>>> 03/29/2026 00:57:51 Line_StrokeLineCap_Round Stop
  Passed Line_StrokeLineCap_Round [33 s]
>>>>> 03/29/2026 00:57:51 Line_StrokeLineCap_Square Start
>>>>> 03/29/2026 00:58:23 Line_StrokeLineCap_Square Stop
  Passed Line_StrokeLineCap_Square [31 s]
>>>>> 03/29/2026 00:58:23 Polyline_StrokeLineJoin_Round Start
>>>>> 03/29/2026 00:58:34 Polyline_StrokeLineJoin_Round Stop
  Passed Polyline_StrokeLineJoin_Round [11 s]
>>>>> 03/29/2026 00:58:34 Polyline_StrokeLineJoin_Bevel Start
>>>>> 03/29/2026 00:58:45 Polyline_StrokeLineJoin_Bevel Stop
  Passed Polyline_StrokeLineJoin_Bevel [11 s]
>>>>> 03/29/2026 00:58:45 Path_Aspect_Uniform Start
>>>>> 03/29/2026 00:58:57 Path_Aspect_Uniform Stop
  Passed Path_Aspect_Uniform [11 s]
>>>>> 03/29/2026 00:58:57 Path_Aspect_Fill Start
>>>>> 03/29/2026 00:59:10 Path_Aspect_Fill Stop
  Passed Path_Aspect_Fill [12 s]
>>>>> 03/29/2026 00:59:10 Path_Aspect_UniformToFill Start
>>>>> 03/29/2026 00:59:22 Path_Aspect_UniformToFill Stop
  Passed Path_Aspect_UniformToFill [12 s]
>>>>> 03/29/2026 00:59:23 RoundRectangle_HeightAndWidth Start
>>>>> 03/29/2026 00:59:37 RoundRectangle_HeightAndWidth Stop
  Passed RoundRectangle_HeightAndWidth [14 s]
>>>>> 03/29/2026 00:59:37 Ellipse_HeightAndWidth Start
>>>>> 03/29/2026 00:59:51 Ellipse_HeightAndWidth Stop
  Passed Ellipse_HeightAndWidth [14 s]
>>>>> 03/29/2026 00:59:51 RoundRectangle_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:00:03 RoundRectangle_StrokeColor_Thickness Stop
  Passed RoundRectangle_StrokeColor_Thickness [11 s]
>>>>> 03/29/2026 01:00:03 RoundRectangle_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:00:19 RoundRectangle_StrokeColor_DashArray_Thickness Stop
  Passed RoundRectangle_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 01:00:19 Line_StrokeLineCap_Flat Start
>>>>> 03/29/2026 01:00:50 Line_StrokeLineCap_Flat Stop
  Passed Line_StrokeLineCap_Flat [31 s]
>>>>> 03/29/2026 01:00:50 Polyline_StrokeLineCap_Round Start
>>>>> 03/29/2026 01:01:03 Polyline_StrokeLineCap_Round Stop
  Passed Polyline_StrokeLineCap_Round [13 s]
>>>>> 03/29/2026 01:01:03 Polyline_StrokeLineCap_Square Start
>>>>> 03/29/2026 01:01:14 Polyline_StrokeLineCap_Square Stop
  Passed Polyline_StrokeLineCap_Square [10 s]
>>>>> 03/29/2026 01:01:14 Path_StrokeLineCap_Round Start
>>>>> 03/29/2026 01:01:25 Path_StrokeLineCap_Round Stop
  Passed Path_StrokeLineCap_Round [11 s]
>>>>> 03/29/2026 01:01:26 Path_StrokeLineCap_Square Start
>>>>> 03/29/2026 01:01:36 Path_StrokeLineCap_Square Stop
  Passed Path_StrokeLineCap_Square [11 s]
>>>>> 03/29/2026 01:01:37 Polygon_StrokeLineJoin_Round Start
>>>>> 03/29/2026 01:01:47 Polygon_StrokeLineJoin_Round Stop
  Passed Polygon_StrokeLineJoin_Round [10 s]
>>>>> 03/29/2026 01:01:47 Polygon_StrokeLineJoin_Bevel Start
>>>>> 03/29/2026 01:01:58 Polygon_StrokeLineJoin_Bevel Stop
  Passed Polygon_StrokeLineJoin_Bevel [11 s]
>>>>> 03/29/2026 01:01:58 Path_StrokeLineJoin_Round Start
>>>>> 03/29/2026 01:02:10 Path_StrokeLineJoin_Round Stop
  Passed Path_StrokeLineJoin_Round [11 s]
>>>>> 03/29/2026 01:02:10 Path_StrokeLineJoin_Bevel Start
>>>>> 03/29/2026 01:02:22 Path_StrokeLineJoin_Bevel Stop
  Passed Path_StrokeLineJoin_Bevel [12 s]
>>>>> 03/29/2026 01:02:22 Polygon_FillRule_Nonzero Start
>>>>> 03/29/2026 01:02:33 Polygon_FillRule_Nonzero Stop
  Passed Polygon_FillRule_Nonzero [11 s]
>>>>> 03/29/2026 01:02:33 Polyline_FillRule_Nonzero Start
>>>>> 03/29/2026 01:02:40 Polyline_FillRule_Nonzero Stop
  Passed Polyline_FillRule_Nonzero [6 s]
>>>>> 03/29/2026 01:02:40 Path_Aspect_None Start
>>>>> 03/29/2026 01:02:53 Path_Aspect_None Stop
  Passed Path_Aspect_None [13 s]
NUnit Adapter 4.5.0.0: Test execution complete

Test Run Failed.
Total tests: 55
     Passed: 53
     Failed: 2
 Total time: 15.3765 Minutes

🟢 With fix — 🖥️ ShapesFeatureTests: FAIL ❌ · 1459s

(truncated to last 15,000 chars)

pdatebuildnumber]10.0.60-ci+azdo.13681890
  Controls.Core -> /home/vsts/work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
  UITest.Core -> /home/vsts/work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
  VisualTestUtils -> /home/vsts/work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
  UITest.Appium -> /home/vsts/work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
  UITest.NUnit -> /home/vsts/work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
  VisualTestUtils.MagickNet -> /home/vsts/work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
  UITest.Analyzers -> /home/vsts/work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
  Controls.TestCases.Android.Tests -> /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
Test run for /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
/home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.11]   Discovering: Controls.TestCases.Android.Tests
[xUnit.net 00:00:00.35]   Discovered:  Controls.TestCases.Android.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/Controls.TestCases.Android.Tests.dll
   NUnit3TestExecutor discovered 55 of 55 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 03/29/2026 01:12:19 FixtureSetup for ShapesFeatureTests(Android)
>>>>> 03/29/2026 01:12:28 Rectangle_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 01:12:39 Rectangle_FillColorWithStrokeColor_Shadow Stop
  Passed Rectangle_FillColorWithStrokeColor_Shadow [11 s]
>>>>> 03/29/2026 01:12:39 Ellipse_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 01:12:47 Ellipse_FillColorWithStrokeColor_Shadow Stop
  Passed Ellipse_FillColorWithStrokeColor_Shadow [8 s]
>>>>> 03/29/2026 01:12:47 Line_StrokeColor_Shadow Start
>>>>> 03/29/2026 01:13:17 Line_StrokeColor_Shadow Stop
  Passed Line_StrokeColor_Shadow [29 s]
>>>>> 03/29/2026 01:13:17 Polygon_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 01:13:26 Polygon_FillColorWithStrokeColor_Shadow Stop
  Passed Polygon_FillColorWithStrokeColor_Shadow [8 s]
>>>>> 03/29/2026 01:13:26 Polyline_StrokeColor_Shadow Start
>>>>> 03/29/2026 01:13:31 Polyline_StrokeColor_Shadow Stop
  Passed Polyline_StrokeColor_Shadow [5 s]
>>>>> 03/29/2026 01:13:32 Path_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 01:13:39 Path_FillColorWithStrokeColor_Shadow Stop
  Passed Path_FillColorWithStrokeColor_Shadow [7 s]
>>>>> 03/29/2026 01:13:40 Rectangle_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:13:59 Rectangle_DashArray_DashOffset_Thickness Stop
  Passed Rectangle_DashArray_DashOffset_Thickness [19 s]
>>>>> 03/29/2026 01:13:59 Ellipse_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:14:20 Ellipse_DashArray_DashOffset_Thickness Stop
  Passed Ellipse_DashArray_DashOffset_Thickness [20 s]
>>>>> 03/29/2026 01:14:20 Polyline_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:14:43 Polyline_DashArray_DashOffset_Thickness Stop
>>>>> 03/29/2026 01:14:43 Log types: logcat, bugreport, server
  Failed Polyline_DashArray_DashOffset_Thickness [23 s]
  Error Message:
   VisualTestUtils.VisualTestFailedException : 
Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Polyline_DashArray_DashOffset_Thickness.png
Ensure new snapshot is correct:    /home/vsts/work/1/a/Controls.TestCases.Shared.Tests/snapshots-diff/android/Polyline_DashArray_DashOffset_Thickness.png
  and if it is, push a change to add it to the 'snapshots' directory.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow

  Stack Trace:
     at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.VerifyShapeScreenshot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 23
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.Polyline_DashArray_DashOffset_Thickness() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 291
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

>>>>> 03/29/2026 01:14:44 Polygon_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:15:05 Polygon_DashArray_DashOffset_Thickness Stop
  Passed Polygon_DashArray_DashOffset_Thickness [21 s]
>>>>> 03/29/2026 01:15:06 Path_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:15:26 Path_DashArray_DashOffset_Thickness Stop
  Passed Path_DashArray_DashOffset_Thickness [20 s]
>>>>> 03/29/2026 01:15:26 Line_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:16:06 Line_DashArray_DashOffset_Thickness Stop
  Passed Line_DashArray_DashOffset_Thickness [39 s]
>>>>> 03/29/2026 01:16:06 Path_PathData_Thickness Start
>>>>> 03/29/2026 01:16:21 Path_PathData_Thickness Stop
  Passed Path_PathData_Thickness [15 s]
>>>>> 03/29/2026 01:16:21 Polyline_Points_Thickness Start
>>>>> 03/29/2026 01:16:38 Polyline_Points_Thickness Stop
>>>>> 03/29/2026 01:16:39 Log types: logcat, bugreport, server
  Failed Polyline_Points_Thickness [17 s]
  Error Message:
   VisualTestUtils.VisualTestFailedException : 
Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Polyline_Points_Thickness.png
Ensure new snapshot is correct:    /home/vsts/work/1/a/Controls.TestCases.Shared.Tests/snapshots-diff/android/Polyline_Points_Thickness.png
  and if it is, push a change to add it to the 'snapshots' directory.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow

  Stack Trace:
     at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.VerifyShapeScreenshot() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 23
   at Microsoft.Maui.TestCases.Tests.ShapesFeatureTests.Polyline_Points_Thickness() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs:line 451
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

>>>>> 03/29/2026 01:16:39 Polygon_Pentagon Start
>>>>> 03/29/2026 01:16:50 Polygon_Pentagon Stop
  Passed Polygon_Pentagon [10 s]
>>>>> 03/29/2026 01:16:50 Rectangle_XAndYRadius Start
>>>>> 03/29/2026 01:17:10 Rectangle_XAndYRadius Stop
  Passed Rectangle_XAndYRadius [19 s]
>>>>> 03/29/2026 01:17:10 Rectangle_HeightAndWidth Start
>>>>> 03/29/2026 01:17:24 Rectangle_HeightAndWidth Stop
  Passed Rectangle_HeightAndWidth [14 s]
>>>>> 03/29/2026 01:17:24 Rectangle_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:17:34 Rectangle_StrokeColor_Thickness Stop
  Passed Rectangle_StrokeColor_Thickness [10 s]
>>>>> 03/29/2026 01:17:34 Ellipse_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:17:45 Ellipse_StrokeColor_Thickness Stop
  Passed Ellipse_StrokeColor_Thickness [11 s]
>>>>> 03/29/2026 01:17:45 Line_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:18:18 Line_StrokeColor_Thickness Stop
  Passed Line_StrokeColor_Thickness [32 s]
>>>>> 03/29/2026 01:18:18 Polygon_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:18:30 Polygon_StrokeColor_Thickness Stop
  Passed Polygon_StrokeColor_Thickness [12 s]
>>>>> 03/29/2026 01:18:30 Polyline_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:18:42 Polyline_StrokeColor_Thickness Stop
  Passed Polyline_StrokeColor_Thickness [11 s]
>>>>> 03/29/2026 01:18:42 Path_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:18:52 Path_StrokeColor_Thickness Stop
  Passed Path_StrokeColor_Thickness [10 s]
>>>>> 03/29/2026 01:18:52 Rectangle_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:19:07 Rectangle_StrokeColor_DashArray_Thickness Stop
  Passed Rectangle_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 01:19:07 Ellipse_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:19:24 Ellipse_StrokeColor_DashArray_Thickness Stop
  Passed Ellipse_StrokeColor_DashArray_Thickness [16 s]
>>>>> 03/29/2026 01:19:24 Line_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:20:00 Line_StrokeColor_DashArray_Thickness Stop
  Passed Line_StrokeColor_DashArray_Thickness [36 s]
>>>>> 03/29/2026 01:20:01 Polygon_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:20:16 Polygon_StrokeColor_DashArray_Thickness Stop
  Passed Polygon_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 01:20:16 Polyline_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:20:32 Polyline_StrokeColor_DashArray_Thickness Stop
  Passed Polyline_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 01:20:32 Path_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:20:46 Path_StrokeColor_DashArray_Thickness Stop
  Passed Path_StrokeColor_DashArray_Thickness [14 s]
>>>>> 03/29/2026 01:20:46 RoundRectangle_FillColorWithStrokeColor_Shadow Start
>>>>> 03/29/2026 01:20:53 RoundRectangle_FillColorWithStrokeColor_Shadow Stop
  Passed RoundRectangle_FillColorWithStrokeColor_Shadow [6 s]
>>>>> 03/29/2026 01:20:53 RoundRectangle_CornerRadius Start
>>>>> 03/29/2026 01:21:10 RoundRectangle_CornerRadius Stop
  Passed RoundRectangle_CornerRadius [16 s]
>>>>> 03/29/2026 01:21:10 RoundRectangle_DashArray_DashOffset_Thickness Start
>>>>> 03/29/2026 01:21:35 RoundRectangle_DashArray_DashOffset_Thickness Stop
  Passed RoundRectangle_DashArray_DashOffset_Thickness [25 s]
>>>>> 03/29/2026 01:21:35 Line_StrokeLineCap_Round Start
>>>>> 03/29/2026 01:22:07 Line_StrokeLineCap_Round Stop
  Passed Line_StrokeLineCap_Round [32 s]
>>>>> 03/29/2026 01:22:07 Line_StrokeLineCap_Square Start
>>>>> 03/29/2026 01:22:41 Line_StrokeLineCap_Square Stop
  Passed Line_StrokeLineCap_Square [33 s]
>>>>> 03/29/2026 01:22:41 Polyline_StrokeLineJoin_Round Start
>>>>> 03/29/2026 01:22:52 Polyline_StrokeLineJoin_Round Stop
  Passed Polyline_StrokeLineJoin_Round [11 s]
>>>>> 03/29/2026 01:22:52 Polyline_StrokeLineJoin_Bevel Start
>>>>> 03/29/2026 01:23:04 Polyline_StrokeLineJoin_Bevel Stop
  Passed Polyline_StrokeLineJoin_Bevel [11 s]
>>>>> 03/29/2026 01:23:04 Path_Aspect_Uniform Start
>>>>> 03/29/2026 01:23:16 Path_Aspect_Uniform Stop
  Passed Path_Aspect_Uniform [12 s]
>>>>> 03/29/2026 01:23:16 Path_Aspect_Fill Start
>>>>> 03/29/2026 01:23:28 Path_Aspect_Fill Stop
  Passed Path_Aspect_Fill [12 s]
>>>>> 03/29/2026 01:23:28 Path_Aspect_UniformToFill Start
>>>>> 03/29/2026 01:23:41 Path_Aspect_UniformToFill Stop
  Passed Path_Aspect_UniformToFill [13 s]
>>>>> 03/29/2026 01:23:42 RoundRectangle_HeightAndWidth Start
>>>>> 03/29/2026 01:23:56 RoundRectangle_HeightAndWidth Stop
  Passed RoundRectangle_HeightAndWidth [14 s]
>>>>> 03/29/2026 01:23:56 Ellipse_HeightAndWidth Start
>>>>> 03/29/2026 01:24:12 Ellipse_HeightAndWidth Stop
  Passed Ellipse_HeightAndWidth [15 s]
>>>>> 03/29/2026 01:24:12 RoundRectangle_StrokeColor_Thickness Start
>>>>> 03/29/2026 01:24:22 RoundRectangle_StrokeColor_Thickness Stop
  Passed RoundRectangle_StrokeColor_Thickness [10 s]
>>>>> 03/29/2026 01:24:22 RoundRectangle_StrokeColor_DashArray_Thickness Start
>>>>> 03/29/2026 01:24:38 RoundRectangle_StrokeColor_DashArray_Thickness Stop
  Passed RoundRectangle_StrokeColor_DashArray_Thickness [15 s]
>>>>> 03/29/2026 01:24:38 Line_StrokeLineCap_Flat Start
>>>>> 03/29/2026 01:25:10 Line_StrokeLineCap_Flat Stop
  Passed Line_StrokeLineCap_Flat [32 s]
>>>>> 03/29/2026 01:25:10 Polyline_StrokeLineCap_Round Start
>>>>> 03/29/2026 01:25:21 Polyline_StrokeLineCap_Round Stop
  Passed Polyline_StrokeLineCap_Round [11 s]
>>>>> 03/29/2026 01:25:22 Polyline_StrokeLineCap_Square Start
>>>>> 03/29/2026 01:25:32 Polyline_StrokeLineCap_Square Stop
  Passed Polyline_StrokeLineCap_Square [10 s]
>>>>> 03/29/2026 01:25:32 Path_StrokeLineCap_Round Start
>>>>> 03/29/2026 01:25:46 Path_StrokeLineCap_Round Stop
  Passed Path_StrokeLineCap_Round [13 s]
>>>>> 03/29/2026 01:25:46 Path_StrokeLineCap_Square Start
>>>>> 03/29/2026 01:25:57 Path_StrokeLineCap_Square Stop
  Passed Path_StrokeLineCap_Square [11 s]
>>>>> 03/29/2026 01:25:57 Polygon_StrokeLineJoin_Round Start
>>>>> 03/29/2026 01:26:08 Polygon_StrokeLineJoin_Round Stop
  Passed Polygon_StrokeLineJoin_Round [11 s]
>>>>> 03/29/2026 01:26:09 Polygon_StrokeLineJoin_Bevel Start
>>>>> 03/29/2026 01:26:24 Polygon_StrokeLineJoin_Bevel Stop
  Passed Polygon_StrokeLineJoin_Bevel [15 s]
>>>>> 03/29/2026 01:26:24 Path_StrokeLineJoin_Round Start
>>>>> 03/29/2026 01:26:35 Path_StrokeLineJoin_Round Stop
  Passed Path_StrokeLineJoin_Round [11 s]
>>>>> 03/29/2026 01:26:35 Path_StrokeLineJoin_Bevel Start
>>>>> 03/29/2026 01:26:46 Path_StrokeLineJoin_Bevel Stop
  Passed Path_StrokeLineJoin_Bevel [11 s]
>>>>> 03/29/2026 01:26:46 Polygon_FillRule_Nonzero Start
>>>>> 03/29/2026 01:26:58 Polygon_FillRule_Nonzero Stop
  Passed Polygon_FillRule_Nonzero [12 s]
>>>>> 03/29/2026 01:26:58 Polyline_FillRule_Nonzero Start
>>>>> 03/29/2026 01:27:05 Polyline_FillRule_Nonzero Stop
  Passed Polyline_FillRule_Nonzero [6 s]
>>>>> 03/29/2026 01:27:05 Path_Aspect_None Start
>>>>> 03/29/2026 01:27:18 Path_Aspect_None Stop
  Passed Path_Aspect_None [13 s]
NUnit Adapter 4.5.0.0: Test execution complete

Test Run Failed.
Total tests: 55
     Passed: 53
     Failed: 2
 Total time: 15.2091 Minutes

⚠️ Issues found
  • ShapesFeatureTests FAILED with fix (should pass)
    • Polyline_DashArray_DashOffset_Thickness [23 s]; Polyline_Points_Thickness [17 s]
    • VisualTestUtils.VisualTestFailedException : Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Polyline_DashArray_Da...
📁 Fix files reverted (1 files)
  • eng/pipelines/ci-copilot.yml

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Mar 29, 2026

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Apr 2, 2026

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration s/agent-changes-requested AI agent recommends changes - found a better alternative or issues s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants